package StackAndQueue;

import java.util.Stack;

public class p232用栈实现队列 {
    class MyQueue {
        Stack<Integer> stackIn;
        Stack<Integer> stackOut;

        public MyQueue() {
            stackIn = new Stack<>(); // 输入栈
            stackOut = new Stack<>(); // 输出栈
        }

        public void push(int x) {
            stackIn.push(x);
        }

        public int pop() {
            // 当输出栈为空时才向其中添加元素
            if (stackOut.isEmpty()){
                while (!stackIn.isEmpty()){
                    stackOut.push(stackIn.pop());
                }
            }
            return stackOut.pop();
        }

        public int peek() {
            if (stackOut.isEmpty()){
                while (!stackIn.isEmpty()){
                    stackOut.push(stackIn.pop());
                }
            }
            int res =  stackOut.pop();
            stackOut.push(res);
            return res;
        }

        public boolean empty() {
            return stackIn.isEmpty() && stackOut.isEmpty();
        }
    }
}
